home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / Lists.p < prev    next >
Text File  |  1996-05-01  |  8KB  |  286 lines

  1. {
  2.      File:        Lists.p
  3.  
  4.      Contains:    List Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Lists;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __LISTS__}
  28. {$SETC __LISTS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC ListsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __CONTROLS__}
  38. {$I Controls.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MEMORY__}
  41. {$I Memory.p}
  42. {$ENDC}
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  49.  
  50. TYPE
  51.     Cell                                = Point;
  52.     CellPtr                             = ^Cell;
  53.     ListBounds                            = Rect;
  54.     ListBoundsPtr                         = ^ListBounds;
  55.     DataArray                            = PACKED ARRAY [0..32000] OF CHAR;
  56.     DataPtr                                = ^DataArray;
  57.     DataHandle                            = ^DataPtr;
  58.     ListSearchProcPtr = ProcPtr;  { FUNCTION ListSearch(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER; }
  59.  
  60.     ListClickLoopProcPtr = Register68kProcPtr;  { FUNCTION ListClickLoop: BOOLEAN; }
  61.  
  62.     ListSearchUPP = UniversalProcPtr;
  63.     ListClickLoopUPP = UniversalProcPtr;
  64.     ListRecPtr = ^ListRec;
  65.     ListRec = RECORD
  66.         rView:                    Rect;
  67.         port:                    GrafPtr;
  68.         indent:                    Point;
  69.         cellSize:                Point;
  70.         visible:                ListBounds;
  71.         vScroll:                ControlRef;
  72.         hScroll:                ControlRef;
  73.         selFlags:                SInt8;
  74.         lActive:                BOOLEAN;
  75.         lReserved:                SInt8;
  76.         listFlags:                SInt8;
  77.         clikTime:                LONGINT;
  78.         clikLoc:                Point;
  79.         mouseLoc:                Point;
  80.         lClickLoop:                ListClickLoopUPP;
  81.         lastClick:                Cell;
  82.         refCon:                    LONGINT;
  83.         listDefProc:            Handle;
  84.         userHandle:                Handle;
  85.         dataBounds:                ListBounds;
  86.         cells:                    DataHandle;
  87.         maxIndex:                INTEGER;
  88.         cellArray:                ARRAY [0..0] OF INTEGER;
  89.     END;
  90.  
  91.     ListPtr                                = ^ListRec;
  92.     ListHandle                            = ^ListPtr;
  93.     ListRef                                = ListHandle;
  94.  
  95. CONST
  96.     lDoVAutoscroll                = 2;
  97.     lDoHAutoscroll                = 1;
  98.     lOnlyOne                    = -128;
  99.     lExtendDrag                    = 64;
  100.     lNoDisjoint                    = 32;
  101.     lNoExtend                    = 16;
  102.     lNoRect                        = 8;
  103.     lUseSense                    = 4;
  104.     lNoNilHilite                = 2;
  105.  
  106.     lDoVAutoscrollBit            = 1;
  107.     lDoHAutoscrollBit            = 0;
  108.     lOnlyOneBit                    = 7;
  109.     lExtendDragBit                = 6;
  110.     lNoDisjointBit                = 5;
  111.     lNoExtendBit                = 4;
  112.     lNoRectBit                    = 3;
  113.     lUseSenseBit                = 2;
  114.     lNoNilHiliteBit                = 1;
  115.  
  116.     lInitMsg                    = 0;
  117.     lDrawMsg                    = 1;
  118.     lHiliteMsg                    = 2;
  119.     lCloseMsg                    = 3;
  120.  
  121.  
  122. TYPE
  123.     ListDefProcPtr = ProcPtr;  { PROCEDURE ListDef(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListRef); }
  124.  
  125.     ListDefUPP = UniversalProcPtr;
  126. FUNCTION LNew({CONST}VAR rView: Rect; {CONST}VAR dataBounds: ListBounds; cSize: Point; theProc: INTEGER; theWindow: WindowRef; drawIt: BOOLEAN; hasGrow: BOOLEAN; scrollHoriz: BOOLEAN; scrollVert: BOOLEAN): ListRef;
  127.     {$IFC NOT GENERATINGCFM}
  128.     INLINE $3F3C, $0044, $A9E7;
  129.     {$ENDC}
  130. PROCEDURE LDispose(lHandle: ListRef);
  131.     {$IFC NOT GENERATINGCFM}
  132.     INLINE $3F3C, $0028, $A9E7;
  133.     {$ENDC}
  134. FUNCTION LAddColumn(count: INTEGER; colNum: INTEGER; lHandle: ListRef): INTEGER;
  135.     {$IFC NOT GENERATINGCFM}
  136.     INLINE $3F3C, $0004, $A9E7;
  137.     {$ENDC}
  138. FUNCTION LAddRow(count: INTEGER; rowNum: INTEGER; lHandle: ListRef): INTEGER;
  139.     {$IFC NOT GENERATINGCFM}
  140.     INLINE $3F3C, $0008, $A9E7;
  141.     {$ENDC}
  142. PROCEDURE LDelColumn(count: INTEGER; colNum: INTEGER; lHandle: ListRef);
  143.     {$IFC NOT GENERATINGCFM}
  144.     INLINE $3F3C, $0020, $A9E7;
  145.     {$ENDC}
  146. PROCEDURE LDelRow(count: INTEGER; rowNum: INTEGER; lHandle: ListRef);
  147.     {$IFC NOT GENERATINGCFM}
  148.     INLINE $3F3C, $0024, $A9E7;
  149.     {$ENDC}
  150. FUNCTION LGetSelect(next: BOOLEAN; VAR theCell: Cell; lHandle: ListRef): BOOLEAN;
  151.     {$IFC NOT GENERATINGCFM}
  152.     INLINE $3F3C, $003C, $A9E7;
  153.     {$ENDC}
  154. FUNCTION LLastClick(lHandle: ListRef): Cell;
  155.     {$IFC NOT GENERATINGCFM}
  156.     INLINE $3F3C, $0040, $A9E7;
  157.     {$ENDC}
  158. FUNCTION LNextCell(hNext: BOOLEAN; vNext: BOOLEAN; VAR theCell: Cell; lHandle: ListRef): BOOLEAN;
  159.     {$IFC NOT GENERATINGCFM}
  160.     INLINE $3F3C, $0048, $A9E7;
  161.     {$ENDC}
  162. FUNCTION LSearch(dataPtr: UNIV Ptr; dataLen: INTEGER; searchProc: ListSearchUPP; VAR theCell: Cell; lHandle: ListRef): BOOLEAN;
  163.     {$IFC NOT GENERATINGCFM}
  164.     INLINE $3F3C, $0054, $A9E7;
  165.     {$ENDC}
  166. PROCEDURE LSize(listWidth: INTEGER; listHeight: INTEGER; lHandle: ListRef);
  167.     {$IFC NOT GENERATINGCFM}
  168.     INLINE $3F3C, $0060, $A9E7;
  169.     {$ENDC}
  170. PROCEDURE LSetDrawingMode(drawIt: BOOLEAN; lHandle: ListRef);
  171.     {$IFC NOT GENERATINGCFM}
  172.     INLINE $3F3C, $002C, $A9E7;
  173.     {$ENDC}
  174. PROCEDURE LScroll(dCols: INTEGER; dRows: INTEGER; lHandle: ListRef);
  175.     {$IFC NOT GENERATINGCFM}
  176.     INLINE $3F3C, $0050, $A9E7;
  177.     {$ENDC}
  178. PROCEDURE LAutoScroll(lHandle: ListRef);
  179.     {$IFC NOT GENERATINGCFM}
  180.     INLINE $3F3C, $0010, $A9E7;
  181.     {$ENDC}
  182. PROCEDURE LUpdate(theRgn: RgnHandle; lHandle: ListRef);
  183.     {$IFC NOT GENERATINGCFM}
  184.     INLINE $3F3C, $0064, $A9E7;
  185.     {$ENDC}
  186. PROCEDURE LActivate(act: BOOLEAN; lHandle: ListRef);
  187.     {$IFC NOT GENERATINGCFM}
  188.     INLINE $4267, $A9E7;
  189.     {$ENDC}
  190. PROCEDURE LCellSize(cSize: Point; lHandle: ListRef);
  191.     {$IFC NOT GENERATINGCFM}
  192.     INLINE $3F3C, $0014, $A9E7;
  193.     {$ENDC}
  194. FUNCTION LClick(pt: Point; modifiers: INTEGER; lHandle: ListRef): BOOLEAN;
  195.     {$IFC NOT GENERATINGCFM}
  196.     INLINE $3F3C, $0018, $A9E7;
  197.     {$ENDC}
  198. PROCEDURE LAddToCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListRef);
  199.     {$IFC NOT GENERATINGCFM}
  200.     INLINE $3F3C, $000C, $A9E7;
  201.     {$ENDC}
  202. PROCEDURE LClrCell(theCell: Cell; lHandle: ListRef);
  203.     {$IFC NOT GENERATINGCFM}
  204.     INLINE $3F3C, $001C, $A9E7;
  205.     {$ENDC}
  206. PROCEDURE LGetCell(dataPtr: UNIV Ptr; VAR dataLen: INTEGER; theCell: Cell; lHandle: ListRef);
  207.     {$IFC NOT GENERATINGCFM}
  208.     INLINE $3F3C, $0038, $A9E7;
  209.     {$ENDC}
  210. PROCEDURE LRect(VAR cellRect: Rect; theCell: Cell; lHandle: ListRef);
  211.     {$IFC NOT GENERATINGCFM}
  212.     INLINE $3F3C, $004C, $A9E7;
  213.     {$ENDC}
  214. PROCEDURE LSetCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListRef);
  215.     {$IFC NOT GENERATINGCFM}
  216.     INLINE $3F3C, $0058, $A9E7;
  217.     {$ENDC}
  218. PROCEDURE LSetSelect(setIt: BOOLEAN; theCell: Cell; lHandle: ListRef);
  219.     {$IFC NOT GENERATINGCFM}
  220.     INLINE $3F3C, $005C, $A9E7;
  221.     {$ENDC}
  222. PROCEDURE LDraw(theCell: Cell; lHandle: ListRef);
  223.     {$IFC NOT GENERATINGCFM}
  224.     INLINE $3F3C, $0030, $A9E7;
  225.     {$ENDC}
  226.  
  227. CONST
  228.     uppListSearchProcInfo = $00002BE0;
  229.     uppListClickLoopProcInfo = $00000012;
  230.     uppListDefProcInfo = $000EBD80;
  231.  
  232. FUNCTION NewListSearchProc(userRoutine: ListSearchProcPtr): ListSearchUPP;
  233.     {$IFC NOT GENERATINGCFM }
  234.     INLINE $2E9F;
  235.     {$ENDC}
  236.  
  237. FUNCTION NewListClickLoopProc(userRoutine: ListClickLoopProcPtr): ListClickLoopUPP;
  238.     {$IFC NOT GENERATINGCFM }
  239.     INLINE $2E9F;
  240.     {$ENDC}
  241.  
  242. FUNCTION NewListDefProc(userRoutine: ListDefProcPtr): ListDefUPP;
  243.     {$IFC NOT GENERATINGCFM }
  244.     INLINE $2E9F;
  245.     {$ENDC}
  246.  
  247. FUNCTION CallListSearchProc(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER; userRoutine: ListSearchUPP): INTEGER;
  248.     {$IFC NOT GENERATINGCFM}
  249.     INLINE $205F, $4E90;
  250.     {$ENDC}
  251.  
  252. FUNCTION CallListClickLoopProc(userRoutine: ListClickLoopUPP): BOOLEAN;
  253.     {$IFC NOT GENERATINGCFM}
  254.     {To be implemented:  Glue to move parameters into registers.}
  255.     {$ENDC}
  256.  
  257. PROCEDURE CallListDefProc(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListRef; userRoutine: ListDefUPP);
  258.     {$IFC NOT GENERATINGCFM}
  259.     INLINE $205F, $4E90;
  260.     {$ENDC}
  261. PROCEDURE LGetCellDataLocation(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListRef);
  262.     {$IFC NOT GENERATINGCFM}
  263.     INLINE $3F3C, $0034, $A9E7;
  264.     {$ENDC}
  265. {$IFC OLDROUTINENAMES }
  266. PROCEDURE LDoDraw(drawIt: BOOLEAN; lHandle: ListRef);
  267.     {$IFC NOT GENERATINGCFM}
  268.     INLINE $3F3C, $002C, $A9E7;
  269.     {$ENDC}
  270. PROCEDURE LFind(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListRef);
  271.     {$IFC NOT GENERATINGCFM}
  272.     INLINE $3F3C, $0034, $A9E7;
  273.     {$ENDC}
  274. {$ENDC}
  275. {$ENDC}
  276. {$ALIGN RESET}
  277. {$POP}
  278.  
  279. {$SETC UsingIncludes := ListsIncludes}
  280.  
  281. {$ENDC} {__LISTS__}
  282.  
  283. {$IFC NOT UsingIncludes}
  284.  END.
  285. {$ENDC}
  286.